/*
* Copyright (c) 2024 SwanLink (Jiangsu) Technology Development Co., LTD.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:pdf_viewer_plugin/src/pdf_viewer_method_channel.dart';

import '../../pdf_viewer_plugin.dart';

/// Builds an Android pdf view.
///
/// This is used as the default implementation for [PdfView.platform] on Android. It uses
/// an [AndroidView] to embed the pdfview in the widget hierarchy, and uses a method channel to
/// communicate with the platform code.
class OhosPdfViewer implements PdfViewerPlatform {
  @override
  Widget build({
    BuildContext? context,
    CreationParams? creationParams,
    Set<Factory<OneSequenceGestureRecognizer>>? gestureRecognizers,
  }) {
    return GestureDetector(
      onLongPress: () {},
      excludeFromSemantics: true,
      child: OhosView(
        viewType: 'pdf_viewer_plugin',
        onPlatformViewCreated: (int id) {},
        gestureRecognizers: gestureRecognizers,
        layoutDirection: TextDirection.rtl,
        creationParams:
            MethodChannelPdfViewerPlatform.creationParamsToMap(creationParams!),
        creationParamsCodec: const StandardMessageCodec(),
      ),
    );
  }
}
